#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>


typedef int SLTDataType;
typedef struct SListNode {
    SLTDataType data; 
    struct SListNode* next; 
    struct SListNode* prev; 
} SLTNode;

void SLTPrint(SLTNode* phead);
SLTNode* SLTbuyNode(SLTDataType x);
void SLTPushBack(SLTNode** pplist, SLTNode** pphead, SLTDataType x);
void SLTPushFront(SLTNode** pphead, SLTNode** pplist, SLTDataType x);
void SLTPopBack(SLTNode** pplist, SLTNode** pphead);
void SLTPopFront(SLTNode** pplist, SLTNode** pphead);
int SLTCount(SLTNode* phead);
void SLTErase(SLTNode** pphead, SLTNode** pplist, int pos);
SLTNode* SLTFind(SLTNode* pphead, SLTDataType x);
void SLTInsert(SLTNode** pphead, SLTNode** pplist, int pos, SLTDataType x);

